package br.com.kees.persistencia;

import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.PersistenceException;

import com.sun.el.parser.ParseException;

import br.com.kees.entidade.Usuario;
import br.com.kees.exception.KeesException;



public class UsuarioDao extends Dao<Usuario> {
	
	public UsuarioDao() {
		super(Usuario.class);
	}
	
	public Usuario loginAdmin(String usuario, String senha) throws KeesException {
		Usuario user = null; //usuario nulo
		EntityManager em = JPAUtil.getEntityManager(); //abre conexao com o banco
		try {
			user = (Usuario) em.createQuery("SELECT obj FROM Usuario AS obj WHERE " //criação de consulta no banco de dados
				        	+ "obj.usuario = :usuario and obj.senha = :senha") //criação de consulta no banco de dados
				       .setParameter("usuario", usuario) //criação de consulta no banco de dados
				       .setParameter("senha", senha) //criação de consulta no banco de dados
				       .getSingleResult(); //criação de consulta no banco de dados
		} catch (NoResultException e) { //apenas um resultado, nao pode ter dois usuarios com mesmo nome
			user = null;
		} catch (PersistenceException e) {
			throw new KeesException(e);
		}
		finally {
			JPAUtil.closeEntityManager(em);
		} 
		return user;
	}
}
